package com.obggtc.picture.service;

import com.obggtc.picture.dto.ai.AiChatRequest;
import com.obggtc.picture.dto.ai.AiChatResponse;
import com.obggtc.picture.enums.AiProviderEnum;

import java.util.Map;

/**
 * AI服务接口
 * 
 * @author system
 * @date 2025/09/10
 */
public interface AiService {
    
    /**
     * 使用默认AI提供商发送聊天消息
     * 
     * @param request 聊天请求
     * @return AI聊天响应
     */
    AiChatResponse chat(AiChatRequest request);
    
    /**
     * 使用指定AI提供商发送聊天消息
     * 
     * @param request 聊天请求
     * @param provider 指定的AI提供商
     * @return AI聊天响应
     */
    AiChatResponse chat(AiChatRequest request, String provider);
    
    /**
     * 检查默认AI服务是否可用
     * 
     * @return 是否可用
     */
    boolean isServiceAvailable();
    
    /**
     * 检查指定AI服务是否可用
     * 
     * @param provider AI提供商代码
     * @return 是否可用
     */
    boolean isServiceAvailable(String provider);
    
    /**
     * 获取所有AI提供商的状态
     * 
     * @return 提供商状态映射
     */
    Map<String, Boolean> getAllProvidersStatus();
    
    /**
     * 测试指定AI提供商的连接
     * 
     * @param provider AI提供商代码
     * @return 测试结果
     */
    boolean testConnection(String provider);
}
